package Interface;

import javax.swing.BorderFactory;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel;
import javax.swing.JPanel;

import java.awt.event.ActionListener ;
import java.awt.event.ActionEvent ;
import java.awt.BorderLayout;

/**
 * @author Nicolas Roussel (roussel@lri.fr)
 *
 */
public class BulleAide{

	private JButton m_Btn;
	private JLabel m_Texte;
	private JFrame m_Frame;	
	
	/**
	 * Constructeur de classe
	 * Creer la fenetre d'aide
	 */
	public BulleAide()
	{
		m_Btn = new JButton("Ok") ;

		ActionListener myAL = new ActionListener()
		{ 
			public void actionPerformed(ActionEvent e) 
			{
				JButton button = (JButton)e.getSource();
				if (button==m_Btn ) {
					BulleAide.this.m_Frame.dispose();
				}
			}	
		};
		m_Btn.addActionListener(myAL) ;
		
		String eol = System.getProperty("line.separator"); 
		m_Texte = new JLabel("Une case peut être vide ou contenir une mine. Le joueur dispose de deux actions possibles sur une case :"+ eol +
				"Clic gauche : le joueur «marche» sur la case. Si elle contient une mine, le joueur a perdu. Si elle est vide :" + eol +
				"sʼil y a au moins une mine adjacente à cette case 1, un numéro apparait sur cettecase représentant le nombre de mines adjacentes," + eol +
				"sʼil nʼy a aucune mine adjacente, la case reste vide et toutes les cases vides adjacentes sont découvertes." + eol +
				"Clic droit : le joueur signale (par un drapeau) un emplacement sur lequel il pense quese situe une mine." + eol + 
				"Le joueur gagne si toutes les cases vides ont été découvertes et toutes les minesont été signalées par des drapeaux, sans erreur.");
		m_Texte.setBorder(BorderFactory.createEmptyBorder(10, 10, 10,10));

		m_Frame = new JFrame("Aide");
		JPanel pane = new JPanel();
		pane.setBorder(BorderFactory.createEmptyBorder(5, 100, 5, 5));
		pane.add(m_Btn);
		m_Frame.add(pane, BorderLayout.PAGE_END);
		m_Frame.add(m_Texte, BorderLayout.PAGE_START);

		m_Frame.pack() ;
		m_Frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		m_Frame.setVisible(true) ;	
		
	}

	/**
	 * Affiche la fenetre d'aide
	 */
	public static void showBox() {
		@SuppressWarnings("unused")
		final BulleAide box = new BulleAide();		
	}
}
